<?php 

class BLanguage
{
	
	/**
	 * 中文
	 * 
	 */
	const LANG_CN = 'cn';

	/**
	 * 英文
	 * 
	 */
    const LANG_EN = 'us';
	
	/**
	 * 当前语系
	 * 
	 * @access private
	 * @var string
	 */
	private $_language = self::LANG_CN;
	
	/**
	 * 支持的语系
	 * 
	 * @access private
	 * @var array
	 */
	private $_languages = array(self::LANG_CN, self::LANG_EN);
	
	/**
	 * 构造器
	 *
	 * @access public
	 * @return null
	 */
	function __construct()
	{
	    $this->language(self::LANG_CN);
	}
	
	/**
	 * 存/取语言设置
	 * 
	 * @access public
	 * @param string $language
	 * @return mixed
	 */
	function language($language = null)
	{
		if (is_null($language)) {
			return $this->_language;
		} elseif (!in_array($language, $this->_languages)) {
			throw new BException('language_unsupport', $language);
		}
		$this->_language = $language;
		return $this;
	}
	
	/**
	 * 获取语言包数据
	 * 
	 * @access public
	 * @param string $package 语言包名称
	 * @return array
	 */
	function get($flag)
	{
		return $this->_get($flag);
	}
	
	/**
	 * 魔术方法取值
	 * 
	 * @access public
	 * @param string $flag
	 * @return mixed
	 */
	function __get($flag)
	{
		return $this->_get($flag);
	}
	
	/**
	 * 取语言包数据
	 * 
	 * @access private
	 * @param string $flag
	 * @return mixed
	 */
	private function _get($flag) 
    {
    	$files = array(
    	   BLoader::PathName("../language/{$flag}/{$this->_language}")
    	);
    	$package = array();
    	foreach ($files as $file) {
    		if (file_exists($file)) {
    	        //return (array)include($file);
    			$package = array_merge($package, (array)@include($file));
    		}
    	}
    	return $package;
	}
	
}

?>
